package com.qdxwx.data.mapper.account;

import com.qdxwx.common.page.PageRequest;
import com.qdxwx.models.account.UserAccount;
import com.qdxwx.models.account.UserAccountDTO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * Qdx NetSchool Platform
 * @author qdxwx
 * @updateTime 2022/5/25
 * @description
 */
@Repository
public interface UserAccountMapper {

    /**
     * 添加UserAccount
     */
    void createUserAccount(UserAccount userAccount);

    /**
     * 修改UserAccount
     *
     * @param userAccount 要修改的UserAccount
     */
    int updateUserAccount(UserAccount userAccount);

    /**
     * 根据id获取单个UserAccount对象
     */
    UserAccount getUserAccountByUserId(Long userId);

    /**
     * 根据用户id获得详情
     */
    UserAccountDTO getUserAccountInfo(Long userId);

    List<UserAccountDTO> selectDtoList(@Param("e") UserAccountDTO account, @Param("page") PageRequest page);

    long selectDtoCount(@Param("e") UserAccountDTO account);

    void deleteUserAccountByIds(String[] idsArr);

    int deleteById(long userId);

    int updateCombine(@Param("userId") long userId, @Param("e") UserAccount userAccount);
}